package com.edu.study.base.stuProductCatalogTemplateData.domain;

import com.ruoyi.common.core.domain.entity.SysDept;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import java.util.ArrayList;
import java.util.List;

/**
 * 产品组件配置模板数据对象 stu_product_catalog_template_data
 * 
 * @author zw
 * @date 2021-05-11
 */
public class StuProductCatalogTemplateData extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private String id;

    /** 归属业务ID */
    @Excel(name = "归属业务ID")
    private String productId;

    /** 编码 */
    @Excel(name = "编码")
    private String catalogCode;

    private String productCatalogTemplateId;

    private String catalogTemplateName;
    /** 名称 */
    @Excel(name = "名称")
    private String catalogName;

    /** 图标 */
    @Excel(name = "图标")
    private String catalogIcon;

    /** 显示状态：0->不生成；1->生成 */
    @Excel(name = "显示状态：0->不生成；1->生成")
    private String catalogShowStatus;

    /** 排序 */
    @Excel(name = "排序")
    private Long catalogSort;

    /** 只有目录才可以添加下级，并且目前，目录是不可以承载内容的， */
    @Excel(name = "只有目录才可以添加下级，并且目前，目录是不可以承载内容的，")
    private String ifOnlyCatalog;

    /** 分类级别：0->1级；1->2级 */
    @Excel(name = "分类级别：0->1级；1->2级")
    private String catalogLevel;

    /** 上级分类的编号：0表示一级分类 */
    @Excel(name = "上级分类的编号：0表示一级分类")
    private String catalogParentId;

    /** 描述 */
    @Excel(name = "描述")
    private String catalogDescription;

    /** 组件类型包括
            1-组件
            2-题库类型
            3-产品
            4-词库
            考虑课程下除组件外，可能会有绘本、活动、考题，根据目录类型在不同的库中进行链接。            
            课程如果有等级的话，单词选择时可选择在同等级下选择 */
    @Excel(name = "组件类型")
    private String stuProductItemType;

    /** 1-组件库：stu_product_item_template 组件ID
            2-题库类型：stu_QUESTION_CATALOG 选择题库类型ID
            3-产品库：stu_product_Catalog 选择末级ID
            4-词库：stu_level */
    @Excel(name = "组件库")
    private String stuProductItemTemplateId;

    /** 课程直接挂载学习组件资料库，也会经过本表，而不是存储在分类目录中；
            1：是 2：否，如果为课程直属，则不会以目录形式体现 */
    @Excel(name = "课程直接挂载学习组件资料库")
    private String ifDirectOwnCourse;

    /** 1:按sort排序 2：整个页面排列组合 */
    @Excel(name = "1:按sort排序 2：整个页面排列组合")
    private String componetRepRankType;

    /** 类似于及格值只有在产品组件时才需要设置 */
    @Excel(name = "类似于及格值只有在产品组件时才需要设置")
    private String learnComponetScore;

    /** 学习组件的权重
            总值按100计算
            参考组件装配内容权重
            计算学习进度参考指标之一 */
    @Excel(name = "学习组件的权重")
    private String weight;




    public String getProductCatalogTemplateId() {
        return productCatalogTemplateId;
    }

    public void setProductCatalogTemplateId(String productCatalogTemplateId) {
        this.productCatalogTemplateId = productCatalogTemplateId;
    }

    public String getCatalogTemplateName() {
        return catalogTemplateName;
    }

    public void setCatalogTemplateName(String catalogTemplateName) {
        this.catalogTemplateName = catalogTemplateName;
    }

    private List<StuProductCatalogTemplateData> children = new ArrayList<StuProductCatalogTemplateData>();

    public List<StuProductCatalogTemplateData> getChildren() {
        return children;
    }

    public void setChildren(List<StuProductCatalogTemplateData> children) {
        this.children = children;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setProductId(String productId) 
    {
        this.productId = productId;
    }

    public String getProductId() 
    {
        return productId;
    }
    public void setCatalogCode(String catalogCode) 
    {
        this.catalogCode = catalogCode;
    }

    public String getCatalogCode() 
    {
        return catalogCode;
    }
    public void setCatalogName(String catalogName) 
    {
        this.catalogName = catalogName;
    }

    public String getCatalogName() 
    {
        return catalogName;
    }
    public void setCatalogIcon(String catalogIcon) 
    {
        this.catalogIcon = catalogIcon;
    }

    public String getCatalogIcon() 
    {
        return catalogIcon;
    }

    public String getCatalogShowStatus() {
        return catalogShowStatus;
    }

    public void setCatalogShowStatus(String catalogShowStatus) {
        this.catalogShowStatus = catalogShowStatus;
    }

    public void setCatalogSort(Long catalogSort)
    {
        this.catalogSort = catalogSort;
    }

    public Long getCatalogSort() 
    {
        return catalogSort;
    }
    public void setIfOnlyCatalog(String ifOnlyCatalog) 
    {
        this.ifOnlyCatalog = ifOnlyCatalog;
    }

    public String getIfOnlyCatalog() 
    {
        return ifOnlyCatalog;
    }
    public void setCatalogLevel(String catalogLevel) 
    {
        this.catalogLevel = catalogLevel;
    }

    public String getCatalogLevel() 
    {
        return catalogLevel;
    }
    public void setCatalogParentId(String catalogParentId)
    {
        this.catalogParentId = catalogParentId;
    }

    public String getCatalogParentId()
    {
        return catalogParentId;
    }
    public void setCatalogDescription(String catalogDescription) 
    {
        this.catalogDescription = catalogDescription;
    }

    public String getCatalogDescription() 
    {
        return catalogDescription;
    }
    public void setStuProductItemType(String stuProductItemType) 
    {
        this.stuProductItemType = stuProductItemType;
    }

    public String getStuProductItemType() 
    {
        return stuProductItemType;
    }
    public void setStuProductItemTemplateId(String stuProductItemTemplateId) 
    {
        this.stuProductItemTemplateId = stuProductItemTemplateId;
    }

    public String getStuProductItemTemplateId() 
    {
        return stuProductItemTemplateId;
    }
    public void setIfDirectOwnCourse(String ifDirectOwnCourse) 
    {
        this.ifDirectOwnCourse = ifDirectOwnCourse;
    }

    public String getIfDirectOwnCourse() 
    {
        return ifDirectOwnCourse;
    }
    public void setComponetRepRankType(String componetRepRankType) 
    {
        this.componetRepRankType = componetRepRankType;
    }

    public String getComponetRepRankType() 
    {
        return componetRepRankType;
    }
    public void setLearnComponetScore(String learnComponetScore) 
    {
        this.learnComponetScore = learnComponetScore;
    }

    public String getLearnComponetScore() 
    {
        return learnComponetScore;
    }
    public void setWeight(String weight) 
    {
        this.weight = weight;
    }

    public String getWeight() 
    {
        return weight;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("productId", getProductId())
            .append("catalogCode", getCatalogCode())
            .append("catalogName", getCatalogName())
            .append("catalogIcon", getCatalogIcon())
            .append("catalogShowStatus", getCatalogShowStatus())
            .append("catalogSort", getCatalogSort())
            .append("ifOnlyCatalog", getIfOnlyCatalog())
            .append("catalogLevel", getCatalogLevel())
            .append("catalogParentId", getCatalogParentId())
            .append("catalogDescription", getCatalogDescription())
            .append("stuProductItemType", getStuProductItemType())
            .append("stuProductItemTemplateId", getStuProductItemTemplateId())
            .append("ifDirectOwnCourse", getIfDirectOwnCourse())
            .append("componetRepRankType", getComponetRepRankType())
            .append("learnComponetScore", getLearnComponetScore())
            .append("weight", getWeight())
            .toString();
    }
}
